package com.wang.jmonkey.modules.system.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wang.jmonkey.modules.system.mapper.SystemJobMapper;
import com.wang.jmonkey.modules.system.model.dto.SystemJobDto;
import com.wang.jmonkey.modules.system.model.entity.SystemJobEntity;
import com.wang.jmonkey.modules.system.model.enums.SystemAclPrincipalTypeEnum;
import com.wang.jmonkey.modules.system.model.enums.SystemDaclPrincipalTypeEnum;
import com.wang.jmonkey.modules.system.service.SystemAclService;
import com.wang.jmonkey.modules.system.service.SystemDaclService;
import com.wang.jmonkey.modules.system.service.SystemJobService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.io.Serializable;
import java.util.List;

/**
 * 岗位信息(SystemJob)表服务实现类
 *
 * @author HeJiawang
 * @since 2021-07-25 08:05:26
 */
@Service
public class SystemJobServiceImpl extends ServiceImpl<SystemJobMapper, SystemJobEntity> implements SystemJobService {

    /**
     * mapper
     */
    @Autowired
    private SystemJobMapper mapper;

    @Autowired
    private SystemAclService systemAclService;

    @Autowired
    private SystemDaclService systemDaclService;

    /**
     * 查询列表
     * @param deptId 检索条件
     * @return 列表数据
     */
    @Override
    public List<SystemJobDto> list(Long deptId) {
        return mapper.list(deptId);
    }

    /**
     * 删除岗位信息
     * @param id 岗位信息id
     * @return true 删除成功
     */
    @Override
    public boolean removeById(Serializable id) {
        return super.removeById(id)
                && systemAclService.deleteByPrincipalId(id, SystemAclPrincipalTypeEnum.JOB)
                && systemDaclService.deleteByPrincipalId(id, SystemDaclPrincipalTypeEnum.JOB);
    }
}
